function test() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            reject("hello world")
        }, 2000)
    })
}

// test().then(res => {
//     console.log(res); // hello world
// })

// test().then(res => {
//     console.log(res); // // hello world
// })

// test().then(res => {
//     console.log(res); // hello world
// }).then(res => {
//     console.log(res); // undefined
//     return "hello js"
// }).then(res => {
//     console.log(res); // hello js
// })

// test().then(res => {
//     console.log(res); // hello world
//     return new Promise((resolve, reject) => {
//         setTimeout(() => {
//             resolve("hello promise") 
//         }, 2000)
//     })
// }).then(res => {
//     console.log(res);// 打印完hello world 2s后，会打印 hello promise
// })


test().then(res => {
    console.log(res); // hello world
    return {
        then(resolve, reject) {
            resolve("hello then")
        }
    }
}).then(res => {
    console.log(res); // hello then
})

// resolve 与 reject

// // 先调用then，然后改变状态
// new Promise((resolve, reject) => {
//     setTimeout(resolve(10), 1000)
// }).then(value => console.log(value))

// // 先改变状态，然后调用then
// const promise = Promise.resolve(10)
// promise.then(value => console.log(value))

Promise.resolve(test()).then(data => console.log(data)) // hello world

test().catch(data => console.log(data)) // hello world




